package config

import "gitee.com/yanwc/ebike-xiaoan-device/internal/field"

type Context struct {
	Imei            field.IMEI
	Imsi            field.IMSI
	FirmwareVersion field.FirmwareVersion
}

type (
	EventNotify     func(Context, field.AlarmType)           // 告警及事件通知
	StatusNotify    func(Context, field.Status)              // 状态通知
	HeartBeatNotify func(Context, field.CSQ, field.VoltageV) // 心跳包通知

	// ctx 登录上下文,url访问当前设备web api 地址
	LoginNotify  func(ctx Context, url string) // 登录通知
	LogoutNotify func(Context)                 // 退出登录，关闭连接

	ServerConfig struct {
		Host              string
		Port              int
		Url               string
		OnEventNotify     EventNotify     // 告警通知
		OnStatusNotify    StatusNotify    // 状态通知
		OnLoginNotify     LoginNotify     // 登录通知
		OnLogoutNotify    LogoutNotify    // 关闭连接通知
		OnHeartBeatNotify HeartBeatNotify // 心跳通知
	}
)
